package leetcode_core.leetcode_5;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 功能描述
 *
 * @author: 张庭杰
 * @date: 2023年01月03日 11:43
 */
public class Intersect {
    public int[] intersect(int[] nums1, int[] nums2) {
        //排序+双指针
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        List<Integer> list = new ArrayList<>();
        int l = 0 , r = 0;
        while(l<nums1.length || r < nums2.length){
            if(nums1[l] < nums2[r]){
                l++;
            }else if(nums1[l] > nums2[r]){
                r++;
            }else if(nums1[l] == nums2[r]){
                int leftVal = nums1[l];
                int rightVal = nums2[r];
                list.add(leftVal);
                while(l<nums1.length && nums1[l] == leftVal){
                    l++;
                }
                while (r < nums2.length && nums2[r] == rightVal){
                    r++;
                }
            }
        }
        int[] res = new int[list.size()];
        for(int i = 0;i<res.length;i++){
            res[i] = list.get(i);
        }
        return res;
    }
}
